.\" Manpage for arx.
.\" Go to https://arx.vg/bug to correct errors or typos.
.TH arx 6 "2022-04-10" "1.3-dev"
.SH NAME
arx \- Arx Libertatis, a cross-platform port of Arx Fatalis
.SH SYNOPSIS
\fBarx\fP
[\fB-hnl\fP]
[\fB-d\fP \fIdata\-dir\fP]
[\fB-u\fP \fIuser\-dir\fP]
[\fB-c\fP \fIconfig\-dir\fP]
[\fB-g\fP \fIdebug\-spec\fP]
.SH DESCRIPTION
\fBarx\fP is the main executable of Arx Libertatis, a cross-platform port of the first-person role-playing game Arx Fatalis. You will need the data from the original Arx Fatalis to run the game. See \fIhttps://arx.vg/data\fP for where you can get it.
.SH OPTIONS SUMMARY
.PP
Here is a short summary of the options available in arx. Please refer to the detailed  documentation below for a complete description.
.TP
.B Generic options:
.nf
 \-h \-\-help               Show supported options
 \-g \-\-debug \fILEVELS\fP       Set debug output levels
 \-\-benchmark\fI[=TIMELIMIT]\fP Log loading times and framerates
 \-\-debug\-gl\fI[=MODE]\fP       Enable OpenGL debug output
 \-\-override\-gl \fIOVERRIDES\fP Override OpenGL extensions
.fi
.TP
.B Search path options:
.nf
 \-n \-\-no\-data\-dir        Don't automatically detect data directories
 \-d \-\-data\-dir \fIDIR\fP       Where to find the data files (can be repeated)
 \-u \-\-user\-dir \fIDIR\fP       Where to store user-specific files
 \-c \-\-config\-dir \fIDIR\fP     Where to store config files
 \-l \-\-list\-dirs          List the searched user and data directories
.fi
.TP
.B Startup options:
    \-\-loadlevel \fILEVELID\fP  Load a specific level
    \-\-loadsave \fISAVEFILE\fP  Load a specific savegame file
    \-\-loadslot \fISAVESLOT\fP  Load a specific savegame slot
    \-\-skiplogo           Skip logos at startup
.fi
.SH OPTIONS
.TP
\fB\-\-benchmark\fP[=\fITIMELIMIT\fP]
Log time taken for startup, loading levels and shutdown, and the minimum, maximum and average framerate.

If a \fITIMELIMIT\fP argument is given, the game will exit after the specified amount of time has been spent rendering normal frames. This time does not include the startup or loading time. Valid values are a number, optionally followed by a unit. Valid units are "\fIms\fP" (milliseconds), "\fIs\fP" (seconds), "\fIm\fP" (minutes) and "\fIh\fP" (hours). The default unit is milliseconds.

This option can be combined with the \fB--loadlevel\fP, \fB--loadsave\fP or \fB--loadslot\fP options to benchmark a specific scene.
.TP
\fB\-c\fP, \fB\-\-config-dir\fP=\fIDIR\fP
By default arx will store configuration files in directories specified by the \fBXDG Base Directory Specification\fP.
This option overrides the directory where config files are loaded from and saved to.
.TP
\fB\-d\fP, \fB\-\-data-dir\fP=\fIDIR\fP
Arx Libertatis will look for data files in directories specified by the \fBXDG Base Directory Specification\fP and in the directory containing the game executable. Besides the system-wide data directory, data files are also loaded from the user directory, which can be set by the \fB\-\-user\-dir\fP option.

This option adds additional directories to search for data files before the detected system-wide directories, but after the user directory. To override the detected data directories combine it with the \fB\-\-no\-data\-dir\fP option.

The \fB\-\-data\-dir\fP option can be repeated to add multiple data directories, in which case they are searched in the order provided.

See \fIhttps://arx.vg/paths\fP and the \fB\-\-list-dirs\fP output for more details.

Use \fBarx\-install\-data\fP(1) to extract and install the required data files from the various different Arx Fatalis setup executables, archives, CDROMs and existing installs.
.TP
\fB\-g\fP, \fB\-\-debug\fP=\fILEVELS\fP
This option can be used to enable debug output for debug builds of Arx Libertatis. For non-debug build, this option is not very useful but recognized for convenience.
.TP
\fB\-\-debug\-gl\fP[=\fIMODE\fP]
Control OpenGL context type and debug output from the OpenGL driver.

The following modes are possible:

.RS
.HP
"\fBenabled\fP"
Enable additional error checks in the OpenGL driver and log all reported errors. This is the mode used when \fB\-\-debug\-gl\fP is specified with no \fIMODE\fP argument.
.HP
"\fBignored\fP"
Enable only the standard OpenGL error checks required by the standard and ignore all errors.
.HP
"\fBnoerror\fP"
Tell the OpenGL driver to assume that there will be no errors. Will fall back to "\fBignored\fP" if not supported.
.HP
"\fBdefault\fP"
Select one of the above modes depending on the build type and enabled features. This is the default when \fB\-\-debug\-gl\fP is not used.
.RE
.IP
.TP
\fB\-h\fP, \fB\-\-help\fP
Show a list of the supported options.
.TP
\fB\-l\fP, \fB\-\-list\-dirs\fP
Show the data, user and config search directories and how they were determined. To adjust the search directories, use the \fB\-\-no\-data\-dir\fP, \fB\-\-data\-dir\fP, \fB\-\-user\-dir\fP and \fB\-\-config\-dir\fP options.
.TP
\fB\-\-loadlevel\fP=\fILEVELID\fP
Load a level immediately after startup, without displaying logos or the main menu. \fILEVELID\fP is the number of the level to be loaded.
.TP
\fB\-\-loadsave\fP=\fISAVEFILE\fP
Load a save file immediately after startup, without displaying logos or the main menu. \fISAVEFILE\fP is the path of the save directory or .sav file to be loaded.
.TP
\fB\-\-loadslot\fP=\fISAVESLOT\fP
Load a save file immediately after startup, without displaying logos or the main menu. \fISAVESLOT\fP is the index of the save slot to be loaded.
.TP
\fB\-n\fP, \fB\-\-no\-data\-dir\fP
Disables looking for default data directories. Default user and config directories and data directories provided using the \fB\-\-data\-dir\fP option are still searched. This option can be used for portable setups where user, config and data files are all in the current directory:

.B arx \-\-no-data\-dir \-\-user\-dir=. \-\-config-dir=.
.TP
\fB\-\-override\-gl\fP=\fIOVERRIDES\fP
Overrides the used OpenGL extensions and features. By default, Arx Libertatis will use all extensions that the driver claims to support except for some that are known to cause issues with certain drivers. This options allows the user to disable additional extensions or re-enable extensions that are by default disabled. It will not make Arx Libertatis attempt to use extensions that the driver does not claim to support.

The overrides passed to this option are parsed after, and thus override, those in the \fIextension_override\fP setting in the \fI[video]\fP section of \fIcfg.ini\fP which is in turn applied after the built-in driver quirk overrides.

All disabled extensions - either by built-in rules or user-supplied overrides are logged.

The override string is made up of a series of override tokens separated by whitespace. Supported overrides are:
.RS
.HP
"\fB-GL_ext\fP":
Disable OpenGL extension GL_ext.
.HP
"\fB+GL_ext\fP":
Re-enable OpenGL extension GL_ext if it was disabled by a previous token (including built-in driver quirk rules).
.HP
"\fBGLx.y\fP", "\fBx.y\fP", "\fBGLxy\fP" or "\fBxy\fP":
Re-enable extensions part of OpenGL version x.y and disabling all others
.HP
"\fBGLx\fP" or "\fBx\fP":
Re-enable extensions part of OpenGL version x.0 and disabling all others
.HP
"\fB+*\fP" or "\fB+\fP":
Re-enable all non-core OpenGL extensions
.HP
"\fB-*\fP" or "\fB-\fP"
Re-enable extensions part of any known OpenGL version and disabling all others
.RE
.IP
Note that the version overrides (i.e. all except "\fB-GL_ext\fP" and "\fB+GL_ext\fP") fully override the set of allowed extensions and thus make all previous tokens meaningless. In particular, \fB\-\-override\-gl="+"\fP will disable both the built-in driver quirk overrides and the \fIextension_override\fP setting while \fB\-\-override\-gl="1.5"\fP will disable the use of all optional extensions.
.TP
\fB\-\-skiplogo\fP
Don't display Logo images at startup. Currently this will not skip the intro cutscene.
.TP
\fB\-u\fP, \fB\-\-user\-dir\fP=\fIDIR\fP
By default arx will store user files (saves, etc.) in directories specified by the \fBXDG Base Directory Specification\fP.
This option overrides the directory where user files are loaded from and saved to.

Configuration files are not stored in the user directory, but in a separate directory that can be set by the \fB\-\-user\-dir\fP option.

The user directory will also be used to load data, overwriting resources from the system-wide data directories amd from directories specified by the \fB\-\-data\-dir\fP option.
.SH SEE ALSO
\fBarx\-install\-data\fP(1), \fBarxsavetool\fP(1), \fBarxunpak\fP(1)
.SH BUGS
.PP
To view known bugs and report new ones, please visit \fIhttps://bugs.arx-libertatis.org/\fP.
